The landscape of video distribution may have shifted from legacy cable and/or satellite broadcasting towards on-demand content delivery. On-demand delivery may be IP based, e.g., via a fixed and/or mobile network. Video consumption and its associated revenue growth may depend on user experience. Device capabilities, network accessibility, content diversity, and/or other factors may drive the user experience. Multicast and broadcast delivery techniques may be used to provide content with reasonable cost efficiency, but they might not meet the requirements imposed by viewing habit changes (e.g., on-demand viewing, higher resolution, higher frame rate, multi-view, etc.). Unicast may deliver content to an individual user directly, but it may be difficult to meet increasing consumer demand within a reasonable timeframe. A blended multicast and unicast video distribution solution such as content distribution network (CDN) or edge caching may balance the demand and supply to a certain degree. However, as video traffic continues to explode (e.g., due to demand for advanced video features such as high resolution, high frame rate, HDR/WCG and multi-view), such a blended solution may not scale efficiently.
System, methods, and instrumentalities are described herein for distributing media content among a group of cache devices. The media content may be available at a content source (e.g., the content source may include a content server, a content service, an edge server, and/or any other sources from where media content may be retrieved). The media content may include one or more content objects. At least a subset of the content objects may have been coded using scalable coding techniques, and may comprise a plurality of scalable layers including a base layer and an enhancement layer. The enhancement layer may have a higher resolution and/or a wider color gamut than the base layer. The enhancement layer may have a different format and/or represent a different view of a scene than the base layer. The enhancement layer may depend on the base layer for decoding and/or playback. The group of cache devices may include a CDN cache server, an edge cache device, a home gateway, an end user device, and/or the like. One or more of the cache devices may be capable of decoding and playing back a content object. The cache devices may be connected via a network including a wired or a wireless network. Content preference information associated with the group of cache devices may be received by a controller configured to manage the distribution of the media content. The content preference information may include a viewing history and/or a subscription (e.g., a subscription to a TV channel or a streaming service) associated with one or more cache devices. The controller may monitor content availability associated with the content source and determine that a content object is available at the content source. The controller may receive scalability information e.g., from the content source) associated with the content object and device property information associated with the group of cache devices. The scalability information may include resolution and/or color gamut information of the scalable layers (e.g., a base layer and/or an enhancement layer) of the content object available at the content source, for example. The device property information may include a display resolution, a storage size, an available network bandwidth, a caching history, a viewing habit, a decoding capability, and/or an access permission of one or more of the group of cache devices. The device property information may be obtained via device discovery (e.g., using a device discovery protocol such as Universal Plug and Play (UPnP)).
The controller may determine that a content object available at the content source is relevant to at least one cache device of the group of cache devices based on the content preference information associated with the group of cache devices. In an example, the determination of relevance may be made if a viewing history of a cache device (or a user of the cache device) indicates a preference for the content object. In an example, the determination of relevance may be made if a subscription associated with a cache device indicates a preference for the content object. In an example, the content object may be determined to be relevant to a cache device (e.g., a home gateway) because the cache device is associated with another device (e.g., an end user device connected to the home gateway) that has shown a preference for the content object (e.g., via a viewing history of the device or a subscription to the content object associated with the device). In an example, the content object may be determined to be relevant to a cache device (e.g., an edge cache server) because the cache device is associated with another device (e.g., an end user device capable of accessing the edge cache server) that has shown a preference for the content object (e.g., via a viewing history of the device or a subscription to the content object associated with the device). The controller may determine, based on the scalability information associated with content object that the content object includes a base layer and an enhancement layer. The controller may select, based at least on the scalability information associated with the content object and the device property information associated with the group of cache devices, a first cache device from the group of cache devices for caching one of the base layer or enhancement layer of the content object. The controller may further select a second cache device from the group of cache devices for caching the other of the base layer or enhancement layer of the content object. For example, the controller may select the first cache device for caching the base layer upon determining that the first cache device is capable of storing and/or displaying the base layer of the content object. The controller may select the second cache device for caching the enhancement layer upon determining that the second cache device is capable of caching the enhancement layer of the content object. In an example, the group of cache devices may include a home gateway and a plurality of end user devices. The end user devices may be capable of connecting to the home gateway and playing back the content object. The content preference information associated with the group of cache devices may include respective content preferences of the plurality of end user devices (e.g., viewing histories and/or subscriptions associated with one or more of the end user devices). The controller may determine that the content object meets the content preferences of at least two of the plurality of end user devices and that the home gateway is capable of storing the base layer of the content object. The controller may select the home gateway to cache the base layer of the content object (e.g., so that the base layer may be shared by the at least two of the plurality end user devices). The controller may select one of the at least two end user devices that is capable of storing and/or displaying the enhancement layer to cache the enhancement layer of the content object.
The group of cache devices may include a cache server located outside a home network (e.g., on a CDN) and a home device within the home network that is capable of accessing the cache server. The content preference information associated with the group of cache devices may include a content preference of the home device. The controller in such scenarios may select the home device to cache the base layer of a content object upon determining that the content object meets the content preference of the home device and that the home device is capable of caching the base layer of the content object. The controller may select the cache server to cache the enhancement layer of the content object (e.g., so that the home device may stream the base layer from a local storage space and, when conditions permit, request the enhancement layer from the cache server). The home device described in the foregoing scenario may comprise at least one of a home gateway or an end user device, for example. In an example, the controller may receive device property information that includes the viewing habit of a cache device. The controller may determine, based on the viewing habit, that the cache device has been used to stream and/or view content outside a home network (e.g., via a cellular connection) at a frequency that exceeds a threshold value. The controller may decide in such cases to cache the base layer of a relevant content object on the cache device (e.g., so that the cache device may watch the base layer from a local storage cache while on a cellular connection and request the enhancement layer from a server when the cache device is connected to a home network).
The controller may receive access privilege information associated with the media content. The access privilege may allow only certain cache devices to access the media content, for example. Accordingly, the controller may select the cache devices that have access permission to the media content to cache the base layer of the media content. Since the enhancement layer depends on the base layer for decoding, an unauthorized device may not be able to play back the media content if the device has obtained only the enhancement layer of the media content.
Upon selecting the first cache device to store the base layer of the content object and the second cache device to store the enhancement layer of the content object, the controller may instruct the first and second cache devices to request/download their respective layers (e.g., from the content source).
The systems, methods, and instrumentalities described herein may be implemented on an end user device, a home gateway, a CDN server, or any other suitable type of devices.